home *** CD-ROM | disk | FTP | other *** search
- package
- {
- import com.balsamiq.events.FileManagerEvent;
- import com.balsamiq.file.FileDescriptor;
- import com.plus9.mockups.Mockups;
- import flash.events.ContextMenuEvent;
- import flash.events.KeyboardEvent;
- import flash.ui.ContextMenu;
- import flash.ui.ContextMenuItem;
- import flash.ui.Keyboard;
- import mx.collections.ArrayCollection;
- import mx.controls.TabBar;
- import mx.core.UIComponent;
- import mx.events.ItemClickEvent;
- import mx.events.MenuEvent;
-
- public class MockupsBar extends UIComponent
- {
- protected var _nativeTabsWidth:Number;
-
- protected var _tabs:TabBar;
-
- protected var _rightClickLastPath:String;
-
- protected var _rightClickMenu:ContextMenu;
-
- protected var _mockups:Mockups;
-
- protected var _sm:StorageManagerAir;
-
- public function MockupsBar()
- {
- super();
- }
-
- protected function onKeyDown(param1:KeyboardEvent) : void
- {
- var _loc2_:uint = 0;
- var _loc3_:ItemClickEvent = null;
- if(param1.ctrlKey && param1.charCode == Keyboard.TAB)
- {
- trace("CTRL+TAB");
- _loc2_ = (_tabs.selectedIndex + 1) % _tabs.dataProvider.length;
- _loc3_ = new ItemClickEvent(ItemClickEvent.ITEM_CLICK);
- _loc3_.item = _tabs.dataProvider[_loc2_];
- onTabsItemClick(_loc3_);
- }
- }
-
- protected function onSelectedFileChange(param1:FileManagerEvent = null) : void
- {
- var _loc3_:String = null;
- var _loc4_:uint = 0;
- var _loc5_:uint = 0;
- var _loc2_:Array = _sm.getFileDescriptors();
- if(_loc2_.length > 0)
- {
- _loc3_ = _sm.currentPath;
- _loc4_ = _loc2_.length;
- _loc5_ = 0;
- while(_loc5_ < _loc4_)
- {
- if(FileDescriptor(_tabs.dataProvider[_loc5_]).path == _loc3_)
- {
- _tabs.selectedIndex = _loc5_;
- break;
- }
- _loc5_++;
- }
- }
- }
-
- protected function onRightClick(param1:ContextMenuEvent) : void
- {
- var _loc2_:uint = uint(_tabs.getChildIndex(param1.mouseTarget));
- var _loc3_:FileDescriptor = FileDescriptor(_tabs.dataProvider[_loc2_]);
- _rightClickLastPath = _loc3_.path;
- _rightClickMenu.customItems = new Array();
- var _loc4_:ContextMenuItem = new ContextMenuItem("Save Mockup",false,_loc3_.isDirty);
- _loc4_.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,onRightClickMenuSelect);
- _rightClickMenu.customItems.push(_loc4_);
- _loc4_ = new ContextMenuItem("Close Mockup");
- _loc4_.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,onRightClickMenuSelect);
- _rightClickMenu.customItems.push(_loc4_);
- _loc4_ = new ContextMenuItem("Clone As New Mockup",false,_loc2_ == _tabs.selectedIndex);
- _loc4_.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,onRightClickMenuSelect);
- _rightClickMenu.customItems.push(_loc4_);
- _loc4_ = new ContextMenuItem("New Blank Mockup",true);
- _loc4_.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,onRightClickMenuSelect);
- _rightClickMenu.customItems.push(_loc4_);
- _loc4_ = new ContextMenuItem("Save All Mockups");
- _loc4_.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,onRightClickMenuSelect);
- _rightClickMenu.customItems.push(_loc4_);
- }
-
- public function get fileManager() : StorageManagerAir
- {
- return _sm;
- }
-
- override protected function createChildren() : void
- {
- _tabs = new TabBar();
- _tabs.addEventListener(ItemClickEvent.ITEM_CLICK,onTabsItemClick);
- _rightClickMenu = new ContextMenu();
- _rightClickMenu.hideBuiltInItems();
- _rightClickMenu.addEventListener(ContextMenuEvent.MENU_SELECT,onRightClick);
- _tabs.contextMenu = _rightClickMenu;
- _tabs.labelFunction = formatLabel;
- if(_sm)
- {
- updateTabs();
- onSelectedFileChange();
- }
- _tabs.styleName = "mockupsBar";
- addChild(_tabs);
- super.createChildren();
- }
-
- public function set mockups(param1:Mockups) : void
- {
- _mockups = param1;
- stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
- }
-
- public function set fileManager(param1:StorageManagerAir) : void
- {
- _sm = param1;
- _sm.addEventListener(FileManagerEvent.FILE_LIST_CHANGE,updateTabs);
- _sm.addEventListener(FileManagerEvent.SELECTED_FILE_CHANGE,onSelectedFileChange);
- updateTabs();
- onSelectedFileChange();
- }
-
- override protected function measure() : void
- {
- super.measure();
- measuredWidth = _tabs.measuredWidth;
- measuredHeight = measuredMinHeight = _tabs.measuredMinHeight;
- }
-
- protected function updateTabs(param1:FileManagerEvent = null) : void
- {
- _tabs.dataProvider = _sm.getFileDescriptors();
- onSelectedFileChange();
- _tabs.setStyle("tabWidth",undefined);
- _tabs.validateNow();
- _nativeTabsWidth = _tabs.measuredWidth + 30;
- invalidateDisplayList();
- }
-
- protected function onNewButtonItemClick(param1:MenuEvent) : void
- {
- var _loc2_:String = null;
- switch(String(XML(param1.item).@kind))
- {
- case "blank":
- _sm.createNewFile();
- break;
- case "clone":
- _sm.createCloneOfCurrentMockup();
- break;
- case "copy":
- _loc2_ = String(XML(param1.item).@path);
- _sm.createNewFile(_sm.getFileDescriptor(_loc2_).data);
- }
- }
-
- protected function onRightClickMenuSelect(param1:ContextMenuEvent) : void
- {
- var _loc2_:String = ContextMenuItem(param1.target).caption;
- switch(_loc2_)
- {
- case "Save Mockup":
- _sm.savePath(_rightClickLastPath);
- break;
- case "Close Mockup":
- _sm.closeFileWithPrompt(_rightClickLastPath);
- break;
- case "Clone As New Mockup":
- _sm.createCloneOfCurrentMockup();
- break;
- case "New Blank Mockup":
- _sm.newMockup();
- break;
- case "Save All Mockups":
- _sm.saveAllFilesToDisk();
- }
- }
-
- public function get mockups() : Mockups
- {
- return _mockups;
- }
-
- override protected function updateDisplayList(param1:Number, param2:Number) : void
- {
- super.updateDisplayList(param1,param2);
- if(!_tabs.dataProvider)
- {
- return;
- }
- if(param1 == 0)
- {
- return;
- }
- if(_nativeTabsWidth > param1)
- {
- _tabs.setActualSize(param1,24);
- _tabs.setStyle("tabWidth",param1 / (_tabs.dataProvider as ArrayCollection).length);
- }
- else
- {
- _tabs.setActualSize(_nativeTabsWidth,24);
- _tabs.setStyle("tabWidth",undefined);
- }
- }
-
- protected function onTabsItemClick(param1:ItemClickEvent) : void
- {
- var _loc2_:FileDescriptor = FileDescriptor(param1.item);
- _sm.selectFile(_loc2_.path);
- }
-
- protected function formatLabel(param1:FileDescriptor) : String
- {
- return (param1.isDirty ? "* " : "") + (param1.name == "" ? "New Mockup" : param1.name);
- }
- }
- }
-
-